﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Comom.Project.ControllerCom;
using Dhtl.Service.IService;
using dai_hoc_tuong_lai.Areas.Admin.Models;
using DataBase.Daihoctuonglai;
using dai_hoc_tuong_lai.Models;

namespace dai_hoc_tuong_lai.Controllers
{
    public class HomeController : UTController
    {
        //
        // GET: /Home/
        private readonly ITongquang _iTongquang;
        private readonly IEmailDangky _iEmailDangky;
        private readonly ITopic _iTopic;
        private readonly IContact _iContact;
        private readonly int PageSize = 15;

        public HomeController(ITongquang iTongquang, IEmailDangky iEmailDangky, ITopic iTopic, IContact iContact)
        {
            this._iTongquang = iTongquang;
            this._iEmailDangky = iEmailDangky;
            this._iTopic = iTopic;
            this._iContact = iContact;
        }

        public ActionResult MenuTongQuan()
        {
            var listEntity = _iTongquang.List();
            List<Tongquang_Model> model = new List<Tongquang_Model>();
            try
            {
                foreach (var item in listEntity)
                {
                    Tongquang_Model ml = new Tongquang_Model();
                    Tongquang_Model.MapFrom(item, ref  ml);
                    model.Add(ml);
                }
            }
            catch { }

            return PartialView("_MenuTongQuan", model);
        }

        public ActionResult TongquangDetails(int id, string name)
        {
            Tongquang_Model model = new Tongquang_Model();
            var item = _iTongquang.GetById(id);
            Tongquang_Model.MapFrom(item, ref  model);
            return View(model);
        }

        public ActionResult Formlienhe()
        {
            ContactModel model = new ContactModel();
            return PartialView("_Formlienhe", model);
        }


        [HttpPost]
        [ValidateInput(false)]
        public ActionResult Formlienhe(ContactModel model)
        {
            if (string.IsNullOrEmpty(model.Name))
            {
                return JsonError("Vui lòng nhập tên người liên hệ");
            }

            if (string.IsNullOrEmpty(model.Email))
            {
                return JsonError("Vui lòng nhập email người liên hệ");
            }

            if (!IsValidEmailAddress(model.Email))
            {
                return JsonError("Emal bạn nhập sai định dạng");
            }

            if (string.IsNullOrEmpty(model.Dt))
            {
                return JsonError("Vui lòng nhập số điện thoại người liên hệ");
            }

            if (!IsNumber(model.Dt))
            {
                return JsonError("Số điện thoại bạn nhập sai số, chỉ cho phép nhập số");
            }

            if (string.IsNullOrEmpty(model.NoiDung))
            {
                return JsonError("Vui lòng nhập nội dung cần liên hệ");
            }

            Contact entity = new Contact();
            entity.DateCreate = DateTime.Now;
            entity.Id = 0;
            entity.Name = model.Name;
            entity.Email = model.Email;
            entity.Dt = model.Dt;
            entity.DiaChi = model.DiaChi;
            entity.NoiDung = model.NoiDung;
            entity.Loailienhe = false;

            _iContact.AddOrUpdate(entity);
            return JsonSuccess(null, null);
        }

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Gioithieu()
        {
            return View();
        }

        public ActionResult Lienhe()
        {
            return View();
        }

        public ActionResult EmailRes()
        {
            EmailResModel model = new EmailResModel();
            return PartialView("_ResEmail", model);
        }

        [HttpPost]
        [ValidateInput(false)]
        public ActionResult ResEmail(EmailResModel model)
        {

            if (string.IsNullOrEmpty(model.Email))
            {
                return JsonError("Vui lòng nhập email");
            }

            if (!IsValidEmailAddress(model.Email))
            {
                return JsonError("Email bạn nhập sai định dạng");
            }

            if (_iEmailDangky.GetByEmail(model.Email) != null)
            {
                return JsonError("Email này đã được đăng ký trên hệ thống của chúng tôi");
            }

            EmailDangky entity = new EmailDangky();
            entity.Email = model.Email;
            entity.id = 0;
            entity.DateCreate = DateTime.Now;
            entity.Status = false;

            _iEmailDangky.AddOrUpdate(entity);

            return JsonSuccess(null, null);
        }
    }
}
